/**
 * COMA Project custiomzation for Sonygraf
 */

var debug_retrieved;

/**
 * Initialization with custom logic for the project
 */
function customInit() {
    radioTipoChanged(null);
}

/**
 * Initialization with custom logic for the project
 */
function customLoadFilter() {
    radioTipoChanged(null);
}


/**
 * Custom inicialization of edit screen
 */
function customDisplay() {
    comaLog('customDisplay()');
    // Solo cuando estamos editando ficha
    if ($("[name=optionsTipoEdit]").length == 0)
        return;

    if ($('#nombre').val() != '') {
        // Hay nombre de pelicula definido -> Es una pelicula, no serie
        $('input:radio[name=optionsTipoEdit][value=pelicula]').prop('checked', true);
        $('#idSerie').attr('disabled', 'disabled').empty();
        $('#capitulo').attr('disabled', 'disabled').val('');

    } else {
        $('#nombre').attr('disabled', 'disabled');
        $('input:radio[name=optionsTipoEdit][value=serie]').prop('checked', true);
        $('#idSerie').removeAttr('disabled');
        $('#capitulo').removeAttr('disabled');
        //fillCombo('serie', 'idSerie');
    }

}

/** 
 * This funtion renderizes a feature, returning HTML. the code is project-dependent, and outside the COMA core
 */
function customRender(FieldName, ObjectFeatures, RetrievedData) {
    debug_retrieved = RetrievedData;

    comaLog('CustomRender(' + FieldName + ',...)');

    switch (FieldName) {
    case 'estado':
        // Decalarar los estados
        var estado_r;
        var estado_p;
        var estado_e;
        var estado_f;
        var estado_c;
        var status_tooltip = '';

        // Calcular los estados
        // recibido
        if (RetrievedData.fechaRecepcion == null) {
            estado_r = 'gray';
            status_tooltip = 'Sin recibir.';
        } else {
            estado_r = 'green';
            status_tooltip += 'Recibido.';
        }

        // Repicado
        var previsto = DBtoDate(RetrievedData.fechaEnvioPrevista);

        var se_ha_empezado = RetrievedData.fechaTraduccion != null || RetrievedData.fechaSubtitulado != null || RetrievedData.fechaAjustado != null || RetrievedData.fechaDoblado != null || RetrievedData.fechaMezclado != null;
        if (RetrievedData.fechaRepicado != null) {
            estado_p = 'green';
            status_tooltip += ' Repicado.';
        } else if (previsto == null && se_ha_empezado) {
            estado_p = 'yellow';
            status_tooltip += ' Producción iniciada sin envio previsto.';
        } else if (previsto != null && new Date().getTime() > previsto.getTime()) {
            estado_p = 'red';
            status_tooltip += ' Producción con retraso.';
        } else if (se_ha_empezado) {
            estado_p = 'yellow';
            status_tooltip += ' Producción iniciada';
        } else {
            estado_p = 'gray';
            status_tooltip += ' Sin iniciar producción';
        }
        comaLog('empezado: ' + se_ha_empezado);

        // enviado
        if (previsto == null) {
            estado_e = 'gray';
            status_tooltip += ' Sin previsión de envío.';
        } else if (RetrievedData.fechaEnviado != null) {
            estado_e = 'green';
            status_tooltip += ' Enviado.';
        } else if (new Date().getTime() > previsto.getTime()) {
            estado_e = 'red';
            status_tooltip += ' Retraso en el envío.';
        } else if (estado_p == 'green') {
            estado_e = 'yellow';
            status_tooltip += ' Listo para enviar.';
        } else {
            estado_e = 'gray';
        }

        // Facturado
        if (estado_e == 'green' && RetrievedData.fechaFactura == null) {
            estado_f = 'yellow';
            status_tooltip += ' Pendiente facturar.';
        } else if (RetrievedData.fechaFactura != null) {
            estado_f = 'green';
            status_tooltip += ' Facturado.';
        } else {
            estado_f = 'gray';
        }
        // Cobrado
        var fecha_vencimiento = DBtoDate(RetrievedData.fechaFactura);
        if (fecha_vencimiento == null)
            fecha_vencimiento = new Date();
        comaLog('Fecha vencimiento 1: ' + fecha_vencimiento.toString() + ' vencimiento: ' + RetrievedData.vencimiento);

        if (RetrievedData.vencimiento != null) {
            comaLog('adding ' + RetrievedData.vencimiento + ' days');
            fecha_vencimiento.setDate(fecha_vencimiento.getDate() + parseInt(RetrievedData.vencimiento));
        } else {
            comaLog('vencimiemto null!');
            fecha_vencimiento.setDate(fecha_vencimiento.getDate() + 60);
        }

        comaLog('Fecha vencimiento 2: ' + fecha_vencimiento.toString());

        if (RetrievedData.fechaCobrado != null) {
            status_tooltip += ' Cobrado.';
            estado_c = 'green';
        } else if (estado_f == 'green' && fecha_vencimiento.getTime() < new Date().getTime()) {
            estado_c = 'red';
            status_tooltip += ' Retraso en el cobro.';
        } else if (estado_f == 'green') {
            estado_c = 'yellow';
            status_tooltip += ' Esperando cobro.';
        } else {
            estado_c = 'gray';
        }


        var html = '';

        html += '<div id="status_1" class="ficha_status" title="' + status_tooltip + '">';
        html += '<div class="status_icon icon_' + estado_r + '">R</div>';
        html += '<div class="status_icon icon_' + estado_p + '">P</div>';
        html += '<div class="status_icon icon_' + estado_e + '">E</div>';
        html += '<div class="status_icon icon_' + estado_f + '">F</div>';
        html += '<div class="status_icon icon_' + estado_c + '">C</div>';
        html += '</div>';
        //comaLog('Returned render: ' + html);
        return html;
        break;

    case 'nombre_compuesto':
        var html = '';
        // nombre compuesto muestra, si es peli, el nombre de la peli. si es una serie o documental, el nombre de la serie + el capítulo
        if (RetrievedData.idSerie == null || RetrievedData.idSerie == '') {
            html += '<img src="img/movie.svg" title="Película" width="18" height="18" style="margin-right: 10px">';
            comaLog('Peli: ' + RetrievedData.nombre);
            html += RetrievedData.nombre;
        } else {
            html += '<img src="img/television.svg" title="Serie o documental" width="18" height="18" style="margin-right: 10px">';

            // Obtener el nombre de la serie
            var id_serie = RetrievedData.idSerie;
            var serie = database.dbSelectSynch('serie', id_serie);
            if (serie == null)
                return '(Serie no encontrada)';

            if (RetrievedData.capitulo == null || RetrievedData.capitulo == 'null')
                html += serie.nombre + ' - n/i';
            else
                html += serie.nombre + ' - ' + RetrievedData.capitulo;
        }

        return html;
        break;

    default:
        throw 'A custom render was invoked but not implemented for feature  ' + FieldName;
    }
}


function customRenderExcel(FieldName, ObjectFeatures, RetrievedData) {
    debug_retrieved = RetrievedData;

    comaLog('customRenderExcel(' + FieldName + ',...)');

    switch (FieldName) {
    case 'estado':
        // Declarar los estados
        var estado_r;
        var estado_p;
        var estado_e;
        var estado_f;
        var estado_c;
        var status_tooltip = '';

        // Calcular los estados
        // recibido
        if (RetrievedData.fechaRecepcion == null) {
            status_tooltip = 'Sin recibir.';
        } else {
            status_tooltip += 'Recibido.';
        }

        // Repicado
        var previsto = DBtoDate(RetrievedData.fechaEnvioPrevista);

        var se_ha_empezado = RetrievedData.fechaTraduccion != null || RetrievedData.fechaSubtitulado != null || RetrievedData.fechaAjustado != null || RetrievedData.fechaDoblado != null || RetrievedData.fechaMezclado != null;
        if (RetrievedData.fechaRepicado != null) {
            status_tooltip += ' Repicado.';
        } else if (previsto == null && se_ha_empezado) {
            status_tooltip += ' Producción iniciada sin envio previsto.';
        } else if (previsto != null && new Date().getTime() > previsto.getTime()) {
            status_tooltip += ' Producción con retraso.';
        } else if (se_ha_empezado) {
            status_tooltip += ' Producción iniciada';
        } else {
            status_tooltip += ' Sin iniciar producción';
        }

        // enviado
        if (previsto == null) {
            status_tooltip += ' Sin previsión de envío.';
        } else if (RetrievedData.fechaEnviado != null) {
            status_tooltip += ' Enviado.';
        } else if (new Date().getTime() > previsto.getTime()) {
            status_tooltip += ' Retraso en el envío.';
        } else if (estado_p == 'green') {
            status_tooltip += ' Listo para enviar.';
        }

        // Facturado
        if (estado_e == 'green' && RetrievedData.fechaFactura == null) {
            status_tooltip += ' Pendiente facturar.';
        } else if (RetrievedData.fechaFactura != null) {
            status_tooltip += ' Facturado.';
        }

        // Cobrado
        var fecha_vencimiento = DBtoDate(RetrievedData.fechaFactura);
        if (fecha_vencimiento == null)
            fecha_vencimiento = new Date();
        if (RetrievedData.vencimiento != null) {
            fecha_vencimiento.setDate(fecha_vencimiento.getDate() + parseInt(RetrievedData.vencimiento));
        } else {
            fecha_vencimiento.setDate(fecha_vencimiento.getDate() + 60);
        }


        if (RetrievedData.fechaCobrado != null) {
            status_tooltip += ' Cobrado.';
        } else if (estado_f == 'green' && fecha_vencimiento.getTime() < new Date().getTime()) {
            status_tooltip += ' Retraso en el cobro.';
        } else if (estado_f == 'green') {
            status_tooltip += ' Esperando cobro.';
        }

        return status_tooltip;


        break;

    case 'nombre_compuesto':
        var html = '';
        // nombre compuesto muestra, si es peli, el nombre de la peli. si es una serie o documental, el nombre de la serie + el capítulo
        if (RetrievedData.idSerie == null || RetrievedData.idSerie == '') {
            return RetrievedData.nombre;
            
        } else {

            // Obtener el nombre de la serie
            var id_serie = RetrievedData.idSerie;
            var serie = database.dbSelectSynch('serie', id_serie);
            if (serie == null)
                return '(Serie no encontrada)';

                return serie.nombre + ' - ' + RetrievedData.capitulo;
        }

        break;

    default:
        throw 'A custom render was invoked but not implemented for feature  ' + FieldName;
    }
}


/**
 * Add custom filters to CurrentFilter array of filters.
 * This funcition has SONYGRAF custom logic
 */
function customFilters(current_filters) {
    var count = current_filters.length;

    // Filtro de estado
    var radio_value = $("input:radio[name=optionsEstado]:checked").val();
    switch (radio_value) {
    case 'pendiente':
        current_filters[count++] = "{'fechaCobrado','is','NULL'}";
        break;
    case 'todo':
        // Do nothing
        break;
    case 'recibido':
        current_filters[count++] = "{'fechaRecepcion','is','NOT NULL'}";
        current_filters[count++] = "{'fechaRepicado','is','NULL'}";
        current_filters[count++] = "{'fechaEnviado','is','NULL'}";
        break;
    case 'producido':
        current_filters[count++] = "{'fechaRepicado','is','NOT NULL'}";
        current_filters[count++] = "{'fechaEnviado','is','NULL'}";
        break;
    case 'enviado':
        current_filters[count++] = "{'fechaEnviado','is','NOT NULL'}";
        current_filters[count++] = "{'fechaFactura','is','NULL'}";
        break;
    case 'facturado':
        current_filters[count++] = "{'fechaFactura','is','NOT NULL'}";
        current_filters[count++] = "{'fechaCobrado','is','NULL'}";
        break;
    case 'cobrado':
        current_filters[count++] = "{'fechaCobrado','is','NOT NULL'}";
        break;
    default:
        // Do nothing
        break;
    }

    // Filtros de tipo
    var radio_value = $("input:radio[name=optionsTipo]:checked").val();
    switch (radio_value) {
    case 'todos':
        // Do nothing
        break;
    case 'peliculas':
        current_filters[count++] = "{'idSerie','is','NULL'}";
        break;

    case 'series':
        // Si se ha seleccionado una serie usarla en el filtro
        if ($('#idSerieSerie').val() != '')
            current_filters[count++] = "{'idSerie','eq'," + $('#idSerieSerie').val() + "}";
        else
            current_filters[count++] = "{'idSerie','is','NOT NULL'}";
        break;
    case 'documentales':
        // Si se ha seleccionado un documental usarlo en el filtro
        if ($('#idSerieDocumental').val() != '')
            current_filters[count++] = "{'idSerie','eq'," + $('#idSerieDocumental').val() + "}";
        else
            current_filters[count++] = "{'idSerie','is','NOT NULL'}";
        break;
    }


    return current_filters;
}


function DBtoDate(DbDate) {
    comaLog('DBToDate(' + DbDate + ')');
    if (DbDate == null || DbDate.length < 10)
        return null;
    var dateParts = DbDate.split("-");
    var d = new Date(dateParts[0], dateParts[1] - 1, parseInt(dateParts[2].substr(0, 2)) + 1, dateParts[2].substr(3, 2), dateParts[2].substr(6, 2), dateParts[2].substr(9, 2));

    return d;
}

function radioTipoChanged(event) {
    var radio_value = $("input:radio[name=optionsTipo]:checked").val();
    switch (radio_value) {
    case 'todos':
        $('#idSerieSerie').attr('disabled', 'disabled').empty();
        $('#idSerieDocumental').attr('disabled', 'disabled').empty();
        break;
    case 'peliculas':
        $('#idSerieSerie').attr('disabled', 'disabled').empty();
        $('#idSerieDocumental').attr('disabled', 'disabled').empty();
        break;
    case 'series':
        $('#idSerieSerie').removeAttr('disabled');
        $('#idSerieDocumental').attr('disabled', 'disabled').empty();
        // Load series combo
        var combo = $('#idSerieSerie');
        var combo_data = database.dbSelectSynch('serie');
        comaLog('Retrieved ' + combo_data.length + ' from series table to fill combos');
        $(combo).empty();
        //$('<option />', {
        //    val: '',
        //    text: '(Seleccione uno)'
        //}).appendTo(combo);

        for (var i = 0; i < combo_data.length; i++) {
            comaLog('item.esDocumental: ' + combo_data[i].esDocumental);
            if (combo_data[i].esDocumental != null && (combo_data[i].esDocumental == true || combo_data[i].esDocumental == 1))
                continue;
            combo.append($('<option>').text(combo_data[i].nombre).val(combo_data[i].id));
        }

        break;
    case 'documentales':
        $('#idSerieSerie').attr('disabled', 'disabled').empty();
        $('#idSerieDocumental').removeAttr('disabled');
        // Load documentales combo
        var combo = $('#idSerieDocumental');
        var combo_data = database.dbSelectSynch('serie');
        comaLog('Retrieved ' + combo_data.length + ' from series table to fill combos');
        $(combo).empty();
        //$('<option />', {
        //    val: '',
        //    text: '(Seleccione uno)'
        //}).appendTo(combo);

        for (var i = 0; i < combo_data.length; i++) {
            comaLog('item.esDocumental: ' + combo_data[i].esDocumental);
            if (combo_data[i].esDocumental == null || combo_data[i].esDocumental == false || combo_data[i].esDocumental == 0)
                continue;
            combo.append($('<option>').text(combo_data[i].nombre).val(combo_data[i].id));
        }
        break;
    }
}

/**
 * Esta funcion se invoca cuando desde la pantalla de edicion de fichas, se cambia el tipo a pelicula
 */
function radioTipoEditChanged(event) {
    comaLog('radioTipoEditChanged(..)');
    var radio_value = $("input:radio[name=optionsTipoEdit]:checked").val();
    switch (radio_value) {
    case 'pelicula':
        $('#idSerie').attr('disabled', 'disabled').empty().val('');
        $('#capitulo').attr('disabled', 'disabled').val('');
        $('#nombre').removeAttr('disabled');
        break;

    case 'serie':
        $('#nombre').attr('disabled', 'disabled').val('');
        $('#idSerie').removeAttr('disabled');
        $('#capitulo').removeAttr('disabled');
        fillCombo('serie', 'idSerie');
        break;
    }
}



/**
 * Crea unas cuantas fichas para hacer pruebas de carga
 */
function createDemoData() {
    creaFicha('Aftershock');
    creaFicha('Back to the Future Part III');
    creaFicha('Circuitry Man');
    creaFicha('Class of 1999');
    creaFicha('The Dark Side of the Moon');
    creaFicha('Fatal Sky');
    creaFicha('Flatliners');
    creaFicha('The Witches Cave');
    creaFicha('Maroko');
    creaFicha('Gremlins 2: The New Batch');
    creaFicha('The Handmaids Tale');
    creaFicha('Hardware');
    creaFicha('I Come in Peace');
    creaFicha('Martians Go Home');
    creaFicha('Metamorphosis: The Alien Factor');
    creaFicha('Moon 44');
    creaFicha('Omega Cop');
    creaFicha('Peacemaker');
    creaFicha('Predator 2');
    creaFicha('The Rift');
    creaFicha('Rebel Storm');
    creaFicha('RoboCop 2');
    creaFicha('Robot Jox');
    creaFicha('Shadowzone');
    creaFicha('Solar Crisis');
    creaFicha('Spaced Invaders');
    creaFicha('Steel and Lace');
    creaFicha('Syngenor');
    creaFicha('A Taste for Flesh and Blood');
    creaFicha('Total Recall');
    creaFicha('Watchers II');
    creaFicha('A Wind Named Amnesia');
    creaFicha('964 Pinocchio');
    creaFicha('Abraxas, Guardian of the Universe');
    creaFicha('And You Thought Your Parents Were Weird');
    creaFicha('Captain America');
    creaFicha('Critters 3');
    creaFicha('Critters 4');
    creaFicha('Dollman');
    creaFicha('Eve of Destruction');
    creaFicha('Godzilla vs. King Ghidorah');
    creaFicha('Murder by Moonlight');
    creaFicha('Naked Lunch');
    creaFicha('Prayer of the Rollerboys');
    creaFicha('Robotrix');
    creaFicha('The Rocketeer');
    creaFicha('Roujin Z');
    creaFicha('Star Trek VI: The Undiscovered Country');
    creaFicha('Terminator 2: Judgment Day');
    creaFicha('The Terror Within II');
    creaFicha('Trancers II');
    creaFicha('Until the End of the World');
    creaFicha('Vegas in Space');
    creaFicha('Wax or the Discovery of Television Among the Bees');
    creaFicha('Wedlock');
    creaFicha('Zeiram');
    creaFicha('Alien 3');
    creaFicha('Bad Channels');
    creaFicha('Freejack');
    creaFicha('Godzilla vs. Mothra');
    creaFicha('Honey, I Blew Up the Kid');
    creaFicha('The Lawnmower Man');
    creaFicha('The Lost World');
    creaFicha('Memoirs of an Invisible Man');
    creaFicha('Mindwarp');
    creaFicha('Mom and Dad Save the World');
    creaFicha('Neon City');
    creaFicha('Prototype X29A');
    creaFicha('Rain Without Thunder');
    creaFicha('Seedpeople');
    creaFicha('Split Second');
    creaFicha('Tetsuo II: Body Hammer');
    creaFicha('Trancers III');
    creaFicha('Ultracop 2000');
    creaFicha('Universal Soldier');
    creaFicha('The Wicked City');
    creaFicha('Acci¢n mutante');
    creaFicha('Alien Intruder');
    creaFicha('American Cyborg: Steel Warrior');
    creaFicha('Arcade');
    creaFicha('Body Snatchers');
    creaFicha('Carnosaur');
    creaFicha('Coneheads');
    creaFicha('Cyborg 2');
    creaFicha('Cyborg Cop');
    creaFicha('Demolition Man');
    creaFicha('Fire in the Sky');
    creaFicha('Fortress');
    creaFicha('Ghost in the Machine');
    creaFicha('Godzilla vs. Mechagodzilla II');
    creaFicha('Jurassic Park');
    creaFicha('Knights');
    creaFicha('Mandroid');
    creaFicha('The Meteor Man');
    creaFicha('Nemesis');
    creaFicha('Patlabor: The Movie 2');
    creaFicha('Philadelphia Experiment II');
    creaFicha('RoboCop 3');
    creaFicha('Robot Wars');
    creaFicha('A.P.E.X.');
    creaFicha('Automatic');
    creaFicha('Circuitry Man 2');
    creaFicha('CyberTracker');
    creaFicha('Darkside Blues');
    creaFicha('Death Machine');
    creaFicha('Double Dragon');
    creaFicha('Godzilla vs. SpaceGodzilla');
    creaFicha('Guyver: Dark Hero');
    creaFicha('No Escape');
    creaFicha('Oblivion');
    creaFicha('Project Metalbeast');
    creaFicha('Project: Shadowchaser 2');
    creaFicha('The Puppet Masters');
    creaFicha('Solar Force');
    creaFicha('Stargate');
    creaFicha('Star Trek Generations');
    creaFicha('T-Force');
    creaFicha('Timecop');
    creaFicha('Trancers 4: Jack of Swords');
    creaFicha('Trancers 5: Sudden Deth');
    creaFicha('Alien Visitor');
    creaFicha('Attack of the 60 Foot Centerfold');
    creaFicha('Caged Heat 3000');
    creaFicha('The City of Lost Children');
    creaFicha('Congo');
    creaFicha('Cyborg 3: The Recycler');
    creaFicha('Cyborg Cop II');
    creaFicha('The Demolitionist');
    creaFicha('Fist of the North Star');
    creaFicha('Galaxis');
    creaFicha('Gamera: Guardian of the Universe');
    creaFicha('Ghost in the Shell');
    creaFicha('Godzilla vs. Destoroyah');
    creaFicha('Heatseeker');
    creaFicha('Johnny Mnemonic');
    creaFicha('Judge Dredd');
    creaFicha('Memories');
    creaFicha('Mighty Morphin Power Rangers: The Movie');
    creaFicha('Mosquito');
    creaFicha('Mutant Species');
    creaFicha('Nemesis 2: Nebula');
    creaFicha('Outbreak');
    creaFicha('Screamers');
    creaFicha('Species');
    creaFicha('Strange Days');
    creaFicha('Tank Girl');
    creaFicha('Terminal Impact');
    creaFicha('12 Monkeys');
    creaFicha('Vampire Vixens from Venus');
    creaFicha('Village of the Damned');
    creaFicha('Virtuosity');
    creaFicha('Waterworld');
    creaFicha('White Dwarf');
    creaFicha('Adrenalin: Fear the Rush');
    creaFicha('The Arrival');
    creaFicha('Barb Wire');
    creaFicha('Crossworlds');
    creaFicha('Escape from L.A.');
    creaFicha('Gamera 2: Attack of Legion');
    creaFicha('Independence Day');
    creaFicha('The Island of Dr. Moreau');
    creaFicha('Mars Attacks!');
    creaFicha('Memory Run');
    creaFicha('Multiplicity');
    creaFicha('Nemesis 3: Prey Harder');
    creaFicha('Nemesis 4: Death Angel');
    creaFicha('Omega Doom');
    creaFicha('Rubbers Lover');
    creaFicha('Sci-Fighters');
    creaFicha('Solo');
    creaFicha('Space Truckers');
    creaFicha('Star Trek: First Contact');
    creaFicha('Tykho Moon');
    creaFicha('Zone 39');
    creaFicha('Abre los ojos');
    creaFicha('Alien Resurrection');
    creaFicha('Contact');
    creaFicha('Cube');
    creaFicha('Deathline');
    creaFicha('The End of Evangelion');
    creaFicha('Event Horizon');
    creaFicha('Face/Off');
    creaFicha('The Fifth Element');
    creaFicha('Full Metal Yakuza');
    creaFicha('Gattaca');
    creaFicha('The Lost World: Jurassic Park');
    creaFicha('Men in Black');
    creaFicha('Mimic');
    creaFicha('Nirvana');
    creaFicha('The Postman');
    creaFicha('Spaceman');
    creaFicha('Starship Troopers');
    creaFicha('The Sticky Fingers of Time');
    creaFicha('Zone 39');
    creaFicha('Andromedia');
    creaFicha('Armageddon');
    creaFicha('Dark City');
    creaFicha('Deep Impact');
    creaFicha('Deep Rising');
    creaFicha('Disturbing Behavior');
    creaFicha('The Faculty');
    creaFicha('Godzilla');
    creaFicha('Lost in Space');
    creaFicha('Martian Successor Nadesico: The Motion Picture _ Prince of Darkness');
    creaFicha('New Rose Hotel');
    creaFicha('Pi');
    creaFicha('Six-String Samurai');
    creaFicha('Skyggen');
    creaFicha('Soldier');
    creaFicha('Species II');
    creaFicha('Sphere');
    creaFicha('Spriggan');
    creaFicha('Star Kid');
    creaFicha('Star Trek: Insurrection');
    creaFicha('The Truman Show');
    creaFicha('The Warlord: Battle for the Galaxy');
    creaFicha('The X-Files');
    creaFicha('A.Li.Ce');
    creaFicha('The Astronauts Wife');
    creaFicha('Barren Illusion');
    creaFicha('Beowulf');
    creaFicha('Bicentennial Man');
    creaFicha('Deep Blue Sea');
    creaFicha('Escape from Mars');
    creaFicha('eXistenZ');
    creaFicha('Furia');
    creaFicha('Galaxy Quest');
    creaFicha('Gamera 3: Awakening of Irys');
    creaFicha('Godzilla 2000');
    creaFicha('The Iron Giant');
    creaFicha('The Matrix');
    creaFicha('My Favorite Martian');
    creaFicha('Peut-ˆtre');
    creaFicha('Progeny');
    creaFicha('Star Wars Episode I: The Phantom Menace');
    creaFicha('The Thirteenth Floor');
    creaFicha('Universal Soldier: The Return');
    creaFicha('Virus');
    creaFicha('Wing Commander');
}

function creaFicha(NombrePeli) {
    var ficha = new Object();
    ficha.nombre = NombrePeli;
    ficha.descripcion = NombrePeli;
    var util = new ComaUtil();
    ficha.fechaRecepcion = util.DateToDB(util.DateToString(new Date));

    database.dbInsertSynch('ficha', ficha, null);
}